package com.lantosec.hmrp.modules.archives.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lantosec.hmrp.core.kit.PageVO;
import com.lantosec.hmrp.modules.archives.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.modules.archives.vo.UserInfoVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author AutoCode
 * @since 2020-06-09
 */
public interface IUserInfoService extends IService<UserInfo> {

    /**
     * 新增用户信息
     * @param vo
     */
    void saveUserInfo(UserInfoVO vo);

    /**
     * 修改用户信息
     * @param vo
     */
    void updateUserInfo(UserInfoVO vo);

    /**
     * 查询用户所有信息
     * @return
     */
    PageVO<UserInfoVO> getAll(PageVO<UserInfo> page,String name);

    /**
     * 查询用户信息审核列表
     * @return
     */
    List<UserInfoVO> getUserInfoVerify();

    /**
     * 审核
     * @param vo （user_info_id，verify_status， state）
     */
    void verifyUserInfo(UserInfoVO vo);

    /**
     * 查询用户信息历史记录
     * @param userId
     * @return
     */
    List<UserInfoVO> getUserInfoHistory(String userId);

    /**
     * 查询当前用户信息
     * @param userId
     * @return
     */
    UserInfoVO getUserInfo(String userId);

    /**
     * 查询用户信息廉政档案列表
     * @return
     */
    List<UserInfoVO> getIntegrityList(String name);

    /**
     * 新增廉政用户信息
     * @param vo
     */
    String saveUserIntegrity(UserInfoVO vo);

    /**
     * 查询用户奖惩信息
     * @param page
     * @param userId
     * @return
     */
    PageVO<Map<String,Object>> getUserRewardsPunish(PageVO<Map<String, Object>> page,String userId);

    /**
     * 查询用户考评记录
     * @param page
     * @param userId
     * @return
     */
    PageVO<Map<String, Object>> getUserAppraisalRecord(PageVO<Map<String, Object>> page, String userId);
}
